#ifndef __GRAPH_H__
#define __GRAPH_H__
#include "global.h"
#include <fstream>

using namespace std;

class Graph {
public:
	Graph();
	~Graph();

	bool create(const char *file_name);
	bool shortestPath(int src_index);
	bool breathFirstSearch();
	bool deepFirstSearch();
	bool deepFirstSearchRecur();
	bool print();


private:
	bool construct();
	bool resetVisitCount();
	int getMinDistNode(vector<NODE *> &node_vec, float *min_dist);
	NODE *head;
	NODE **node_list;
	int node_num;
	float *dist_matrix;
};

#endif

